package com.weactivity.service.impl;

import com.weactivity.service.MailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

import javax.mail.internet.MimeMessage;
import java.io.File;
import java.util.Date;

@Service
public class MailServiceImpl implements MailService {

    @Autowired
    private JavaMailSender javaMailSender;


    /**
     * 发送邮件
     * @param to  接收人
     * @param from 发送人
     * @param content 正文内容
     */
 
    @Override
    public void sendEmail(String to,String from, String content){
        System.out.println(javaMailSender.toString());
    //使用 JavaMailSender 创建一个 MIME 类型的信息对象实例。
    MimeMessage mimeMessage = javaMailSender.createMimeMessage();
    try {
    //创建一个 MimeMessageHelper 对象实例，用于辅助构建 MIME 类型的信息。
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
        //设置邮件接收人的邮箱地址。
        helper.setTo(to);
        //设置邮件发送人的地址，此处应替换成真实的发送人邮箱地址。
        helper.setFrom(from);
        //设置邮件的主题。
        helper.setSubject("主题");
        helper.setText(content);
       // 获取当前的时间日期信息。
        Date date = new Date();
        //设置邮件的文本内容，其中使用了 HTML 标签来设置文本样式。具体来说，用了 <span> 标签来设置字体颜色，name 和 date 变量则是用于动态显示的内容。
      /*  helper.setText("恭喜<span style=\"color:red;\">"+name+"</span>在"+date+"成功注册了我们团队合力所开发的软件,这个软件可以为你的日常生活带来极大的方便,它将是你的生活发生天翻地覆的变化。敬请期待它对你的改变",true);
        //发送附件
        helper.addAttachment("文件名",new File("路径"));
        //发送图片
        helper.setText("内容<br><img src='图片名'>",true);
        helper.addInline("图片名",new FileSystemResource(new File("路径")));
        //超链接
        helper.setText("内容<a href='http://www.baidu.com'>点我</a>",true);*/
        //调用 JavaMailSender 的 send() 方法来完成邮件发送操作，其中 mimeMessage 参数即为构建好的 MIME 类型信息对象。
        javaMailSender.send(mimeMessage);
    } catch (Exception e) {
    //：捕获可能发生的异常并抛出运行时异常，以便能够及时处理问题。
        throw new RuntimeException(e);
    }
}


}